import { getQueryValue,getUrlParams,getParams } from '@/commont/utils/getQuery'
import qs from 'qs'; //qs.stringify()将对象 序列化成URL的形式，以&进行拼接
import data from '@/commont/constants/dataList'

// 数据
const dataList1 = data.dataList1.rows;
const dataList2 = data.dataList2.rows;

// 多条件+分页查询
const getSelectDataByPage = (params) => {
  let { currentPage, pageSize, age, job } = params;// 参数：当前页,每页显示条数,年龄
  let rows = [];

  //@param condition 过滤条件
  //@param data 需要过滤的数据
  let filter = (condition,data) =>{
    return data.filter(item =>{
      return Object.keys(condition).every(key =>{
        return String(item[key]).toLowerCase().includes( String(condition[key]).trim().toLowerCase() );
      })
    })
  }

  // 无条件,单条件,多条件
  rows = filter({age:age, job:job}, dataList1);

  // 总数
  const total = rows.length;

  // 当前页显示的数据
  const list = rows.slice((currentPage - 1) * pageSize, currentPage * pageSize);
  return {
    code: 200,
    message: 'success',
    total: total,
    rows: list
  };
}

// 分页查询
const getSelectByPage = (params) => {
  let { currentPage, pageSize } = params;// 参数：当前页，每页显示条数
  const total = dataList2.length;//总数
  // 当前页显示的数据 = 总数据slice((当前页-1)*每页显示数据,当前页*每页显示数据)
  const list = dataList2.slice((currentPage - 1) * pageSize, currentPage * pageSize)
  return {
    code: 200,
    message: 'success',
    total: total,
    rows: list
  };
}


export default {
  // 直接返回数据(没有对数据进行处理)
  'get|/getUserList': data.userList,

  // 地址栏拼接参数：查询、分页
  'get|/getSelectDataByPage': (options) => {//地址栏拼接参数-截取
    console.log(options);
    // 将地址栏参数转为json对象
    let params = getUrlParams(options.url);
    return {
      data: getSelectDataByPage(params)
    }
  },

  // 地址栏拼接参数：分页
  'get|/getSelectByPage': (options) => {//地址栏拼接参数-qs
    console.log(options);
    // 将地址栏参数转为json对象
    let params = qs.parse(options.url.substr((options.url.indexOf('?'))+1));
    return getSelectByPage(params);
  },


  'post|/getDataList': (options) =>{//json格式
    console.log(options);
    let bodyData = JSON.parse(options.body);
    return {
      code: 200,
      message: 'success',
      data: dataList(bodyData)
    }
  },
  'get|/sencedata': (options) =>{//拼接格式
    console.log(options);
    let params = getParams(options.body);
    return {
      code: 200,
      message: 'success',
      data: arrList(params)
    }
  },
}